package com.shop.cereshop.app.page.buyer.blacklist;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * @description: 黑名单响应对象
 * @author zdd
 * @date 2025/11/12 16:34
 * @version 1.0
 */
@Data
@ApiModel(value = "BlacklistVO", description = "黑名单响应对象")
public class BuyerBlacklistVO {

    @ApiModelProperty(value = "主键ID")
    private Long id;

    @ApiModelProperty(value = "用户ID（拉黑发起方）")
    private Long buyerUserId;

    @ApiModelProperty(value = "创建者名称")
    private String buyerUserName;

    @ApiModelProperty(value = "被拉黑的用户ID")
    private Long blockedUserId;

    @ApiModelProperty(value = "被拉黑用户名称")
    private String blockedUserName;

    @ApiModelProperty(value = "被拉黑用户头像")
    private String blockedUserAvatar;

    @ApiModelProperty(value = "关系类型")
    private Integer relationType;

    @ApiModelProperty(value = "关系类型描述")
    private String relationTypeDesc;

    @ApiModelProperty(value = "拉黑来源")
    private Integer blockSource;

    @ApiModelProperty(value = "拉黑来源描述")
    private String blockSourceDesc;

    @ApiModelProperty(value = "拉黑场景")
    private String blockScene;

    @ApiModelProperty(value = "拉黑原因")
    private String reason;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "状态描述")
    private String statusDesc;

    @ApiModelProperty(value = "拉黑级别")
    private Integer blockLevel;

    @ApiModelProperty(value = "是否自动解封：1-是 0-否")
    private Integer autoUnblock;

    @ApiModelProperty(value = "过期时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime expireTime;

    @ApiModelProperty(value = "剩余天数")
    private Integer remainingDays;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdTime;

}
